import java.util.Arrays;

public class Test {
    //实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.
    public static void toString(int[] array){
        String a = "[";
        for (int i = 0; i < array.length; i++) {
            a = a+array[i]+",";//a本质上就是一个字符，不用双引号
            if (i == array.length-1){
                a = a+array[i]+"]";
            }
        }
        System.out.println(a);
    }
    public static void main(String[] args) {
        int[] array1 ={22,13,42,5,8,12,45};
        toString(array1);
    }











    //实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.
    public static int[] copyOf(int[] array){
        int[] a = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            a[i] = array[i];
        }
        return a;
    }
    public static void main8(String[] args) {
        int[] array1 ={22,13,42,5,8,12,45};
        System.out.println(Arrays.toString(copyOf(array1)));

    }









    //给定一个整型数组, 判定数组是否有序（递增）
    public static boolean fuc2(int[] array){
        for (int i = 0; i < array.length-1; i++) {
            if (array[i]>array[i+1]){
                return false;
            }else {
                continue;
            }
        }
        return true;
    }
    public static void main7(String[] args) {
        int[] array1 ={22,13,42,5,8,12,45};
        int[] array = {1,2,3,4,5,6};
        System.out.println(fuc2(array));
        System.out.println(fuc2(array1));
    }











    //给定一个整型数组, 实现冒泡排序(升序排序)
    public static void main6(String[] args) {
        int[] array1 ={22,13,42,5,8,12,45};
        int[] array = {1,2,3,4,5,6};
        int a = 0;
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j]>array[j+1]){
                    a = 1;
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            }
            if (a == 0){
                break;//立即终结当前的for循环，执行下一行语句
            }
        }
        System.out.println(Arrays.toString(array));

    }









    //创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
    public static void main5(String[] args) {
        int[] a = new int[100];
        for (int i = 0; i < 100; i++) {
            a[i] = i+1;
            System.out.print(a[i]+" ");
        }
    }











    //实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
    public static void printArray(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }
    public static void main4(String[] args) {
        int[] array ={2,3,4,5,8,12,45};
        printArray(array);
    }

    //实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
    public static void tranform(int[] array){
        for (int i = 0; i < array.length; i++) {
            array[i] = 2*array[i];
        }
    }
    public static void main3(String[] args) {
        int[] array ={2,3,4,5,8,12,45};
        tranform(array);
        System.out.println(Arrays.toString(array));
    }







    //实现一个方法 sum, 以数组为参数, 求数组所有元素之和.
    public static int fuc1(int[] array) {
        int tmp = 0;
        for (int i = 0; i < array.length; i++) {
            tmp += array[i];
        }
        return tmp;
    }
    public static void main2(String[] args) {
        int[] array ={2,3,4,5,8,12,45};
        System.out.println(fuc1(array));
    }





    //实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
    public static int fuc(int[] array){
        int tmp = 0;
        for (int i = 0; i < array.length; i++) {
            tmp += array[i];
        }
        int s = tmp/array.length;
        return s;
    }
    public static void main1(String[] args) {
        int[] array ={2,3,4,5,8,12,45};
        System.out.println(fuc(array));
    }
}
